package com.hujing.exception;

/**
 * 记住一个结论:
 * 1.finally里中的代码改变不了返回结果(前提，finally中没有return语句）
 * 
 * 面试题:final,finally,finalize三者的区别?
 * 1.final用来修饰类,方法,变量,修饰的类不能被继承,修饰的方法不能被重写,修饰的变量是常量;
 * 2.finally是try-catch-finally语句的一部分,表示最终要执行的代码,常用来做资源的释放
 * 3.finalize是Object类的方法,在垃圾回收的时候会用到的方法
 */
public class ExceptionDemo4 {

    public static void main(String[] args) {
        // 这里返回的是2,不是3
        System.out.println(test());
    }
    
    public static int test(){
        int x = 1;
        try{
            x++;
            // 返回的时候会先将返回结果x存起来,然后再执行finally里面的代码
            return x;
        }finally {
            x++;
            System.out.println(x);
            return x;
        }
    }
}
